home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
gfx
/
edit
/
AmiCAD_2.06.lha
/
AmiCAD
/
ARexx
/
Centrer.AmiCAD
< prev
next >
Wrap
Text File
|
2000-04-16
|
2KB
|
88 lines
/* Centrage de la référence et de la valeur d'un composant.
Version 1.00: 11 août 1998
Version 1.01: 13 avril 2000 (modif gestion SAVEALL, OBJECTS)
Version 1.02: 16 avril 2000 (amélioration placement)
$VER: Centrer.AmiCAD 1.02, © R.Florac, 16 avril 2000 */
options results
signal on error
signal on syntax
nc=0; objet=1
'SAVEALL:OBJECTS'; objets=result
do while objet>0
'O=FINDOBJ('objet',1,-1,-1)'; objet=result
if objet>0 then do
'TEST(O)'
if result>0 then do
nc=nc+1
call centrer(objet)
end
objet=objet+1
if objet>objets then objet=0
end
end
if nc=0 then do
'MESSAGE("Sélectionnez d''abord"+CHR(10)+"l''objet à arranger")'
exit
end
exit
centrer: procedure
parse arg o
'GETPOS(O='o')'; p=result
'R=GETREF(O)'
ref=result
'V=GETVAL(O)'
val=result
if ref>0 then do
if val=0 then do
if p=1 | p=3 then do
'MOVE(R,0,LINE(O)-LINE(R)+(HEIGHT(O)+HEIGHT(R))/2)'
end
else do
'MOVE(R,COL(O)-COL(R)+(WIDTH(O)-WIDTH(R))/2,0)'
end
end
else do
if p=1 | p=3 then do
'MOVE(R,0,LINE(O)-LINE(R)+HEIGHT(O)/2)'
end
else do
'MOVE(R,COL(O)-COL(R)+(WIDTH(O)-WIDTH(R))/2,0)'
end
end
end
if val>0 then do
if ref=0 then do
if p=1 | p=3 then do
'MOVE(V,0,LINE(O)-LINE(V)+(HEIGHT(O)+HEIGHT(V))/2)'
end
else do
'MOVE(V,COL(O)-COL(V)+(WIDTH(O)-WIDTH(V))/2,0)'
end
end
else do
if p=1 | p=3 then do
'MOVE(V,0,LINE(O)-LINE(V)+(HEIGHT(O)+3*HEIGHT(V)/2)/2)'
end
else do
'MOVE(V,COL(O)-COL(V)+(WIDTH(O)-WIDTH(V))/2,0)'
end
end
end
return
/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Script Centrer.AmiCAD"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit
error:
'MESSAGE("Script Centrer.AmiCAD"+CHR(10)+"Erreur en ligne 'SIGL'")'
exit